<!-- 双向数据绑定 -->
<!DOCTYPE html>
<input type="text" id="input"> 
</html>
<script>
  let data ={
    name:''
  }
  let v_name=""
  Object.defineProperty(data,"name",{
    // 数据劫持
    get(){
      // console.log("数据被获取");
      return v_name
    },
    set(newValue){
      // console.log('数据被改变');
      // 数据发送改变，试图也要发送变化
      document.getElementById("input").value=newValue
      v_name=newValue
    }
  })
  // 试图发生变化，数据也要变化
  document.getElementById("input").addEventListener("input",e=>{
    // console.log(e.target.value);
    data.name=e.target.value

    // console.log(data.name);
  })
</script>